﻿<!DOCTYPE html>
<html>
<head>
<title>锐浪HTML5报表演示 - 支持跨平台的WEB报表解决方案</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="Description" content="锐浪HTML5报表各种样式报表演示，无需安装报表插件，支持全部WEB浏览器展现报表与图表，支持跨平台(Windows、手机，IPAD等)，客户端零部署的WEB报表。"/>
<meta name="Keywords" content="HTML5报表,WEB报表,跨平台报表,ASP.NET报表,JAVA报表"/>
<style type="text/css">
h1 {
    text-align: center;
    margin-top:4px;
    margin-bottom:4px;
}
h2 {
    margin-bottom:0px;
}
h3 {
    color: white;
    background-color: #487417;
    height: 1.6em;
    padding-top: 0.5em;
    margin-bottom: 0; 
}
p {
    /*margin-top: 4px; */
    /*margin-bottom: 4px;*/
}

.table-report {
    width: 100%; 
    font-size: 10pt; 
    border: black medium solid;
    border-collapse: collapse;
}
.table-title-row {
    background-color: #e6e6fa;
    text-align: center;
    font-weight:bold;
    height: 32px; 
}
th {
      border: black thin solid;
}
.table-data-row {
    height: 21px; 
}
td {
    border: black thin solid;
}
td>span {
    margin-left:4px;
    margin-right:4px;
    border-left:solid 1px;
}
</style>
<script language="javascript" type="text/javascript">
    function openReport(report, data) {
        var url = "General/ViewReport.jsp?report=" + report;

        if (data) {
            url += "&data=" + data;
        }
        window.open(url, "_blank");
    }

    function openReportWebApp(report, data) {
        var url = "General/ViewReport-WebApp.jsp?report=" + report;

        if (data) {
            url += "&data=" + data;
        }
        window.open(url, "_blank");
    }

    function openReportServer(report, data) {
        var url = "General/ViewReport-Server.jsp?report=" + report;

        if (data) {
            url += "&data=" + data;
        }
        window.open(url, "_blank");
    }

    function openData(data) {
        window.open("../data/DataCenter.jsp?data=" + data, "_blank");
    }
</script>
</head>
<body>
<!--<a href="http://www.rubylong.cn/WebReport/html5/" target="_blank"><img style="float: right;margin-top:-12px;" src="html5/img/grhtml5_demo_url2.png" alt="扫描二维码访问HTML5报表" /></a>
-->
<h1>HTML5报表(无插件跨平台WEB报表)例子 - 锐浪报表开发工具Grid++Report6</h1>
<p>锐浪WEB报表开发包括<strong>报表插件、HTML5报表、报表服务器与报表客户端</strong>，同一报表模板与报表数据提供程序可以为这四种WEB报表开发方式共用，可以非常容易的从一种开发方式切换到另一种，<a href="http://www.rubylong.cn/gridreport/sel-web.htm">点击</a>进一步了解锐浪WEB报表。WEB报表支持各种WEB服务器与操作系统，支持任意形式的数据源，而不局限于关系数据库。WEB报表开发相关资料与例子在<a href="http://www.rubylong.cn/gridreport/download.htm" target="_blank">锐浪报表Grid++Report6</a>安装包中，WEB报表例子包括<strong>asp.net(c#,vb)、asp、php、jsp(java)</strong>。访问<a href="http://www.rubylong.cn" target="_blank">锐浪软件首页</a>详细了解锐浪报表。

<p style="margin-bottom:0;">官方网站例子演示：
<ul style="margin-top:0;">
<li><a href="http://www.gridreport.cn/demos/plugins/" target="_blank">WEB报表插件</a></li>
<li><a href="http://www.gridreport.cn/demos/html5/" target="_blank">HTML5报表</a></li>
<li><a href="http://www.gridreport.cn/demos/server/" target="_blank">WEB报表服务器</a></li>
<li><a href="http://www.gridreport.cn/demos/webapp/" target="_blank">WEB报表客户端</a></li>
</ul>
</p>

<p>HTML5报表运行在所有支持HTML5的浏览器(目前较新版本的各种浏览器都支持HTML5)中，所以各种操作系统平台(Windows、Linux与Android等)与各种硬件设备(电脑、手机与IPAD等)都能运行锐浪HTML5报表，锐浪HTML5报表是跨平台报表开发的最佳选择。</p>

<h2>各种格式报表演示</h2>
<p>
下面演示各种形式的报表的HTML5报表的展现结果，可以在各种浏览器与设备上运行。表格的“报表模板”与“报表数据”两栏的链接可以打开对应的报表模板与报表数据，通过查看报表数据网页的源数据，可以看到报表的 XML 或 JSON 数据。
</p>

<h3>各种基础报表</h3>
<table class="table-report">
<colgroup>
<col width="10%" />
<col width="25%" />
<col width="10%" />
<col width="20%" />
<col width="35%" />
</colgroup>
<tr class="table-title-row">
<th>报表名称</th>
<th>报表运行</th>
<th>报表模板</th>
<th>报表数据</th>
<th>说明</th>
</tr>

<tr class="table-data-row">
<td>1a.简单表格</td>
<td><a href="javascript:openReport('1a', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('1a', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('1a', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/1a.grf" target="_blank">grf/1a.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
一个简单的表格报表。
</td>
</tr>
<tr class="table-data-row">
<td>1b.双层表头</td>
<td><a href="javascript:openReport('1b', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('1b', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('1b', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/1b.grf" target="_blank">grf/1b.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
双层表头报表，明细网格标题行可以定义任意多层的表头。在设计器‘列标题布局...’界面中在设计时定义多层标头。
</td>
</tr>
<tr class="table-data-row">
<td>1f.表格中图像与文字</td>
<td><a href="javascript:openReport('1f', 'Picture');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('1f', 'Picture');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('1f', 'Picture');">搭配服务器</a>
</td>
<td><a href="../grf/1f.grf" target="_blank">grf/1f.grf</a></td>
<td><a href="javascript:openData('Picture');">/data/DataCenter.jsp?data=Picture</a></td>
<td>
演示报表中的混和显示文字与图像，将明细网格的内容格设为自由格，实现图像与文字的混合排列。
</td>
</tr>
<tr class="table-data-row">
<td>1g.条形码与二维码</td>
<td><a href="javascript:openReport('1g', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('1g', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('1g', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/1g.grf" target="_blank">grf/1g.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
演示条形码与二维码，条形码数据将来自于关联的字段值。支持各种条常用的条形码与二维码。
</td>
</tr>
<tr class="table-data-row">
<td>1i.演示部件框自动布局</td>
<td><a href="javascript:openReport('1i', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('1i', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('1i', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/1i.grf" target="_blank">grf/1i.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
自动布局功能是开发自适应动态报表的重要方面。自动布局功能包括：停靠(Dock)、居中(Center)、对齐列(AlignColumn)、锚定(Anchor)。
</td>
</tr>
<tr class="table-data-row">
<td>1k.明细自由编排</td>
<td><a href="javascript:openReport('1k', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('1k', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('1k', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/1k.grf" target="_blank">grf/1k.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
将明细网格的标题格与内容格设为自由格，就可以像其它条幅式报表工具一样自由编排报表明细。
</td>
</tr>
<tr class="table-data-row">
<td>1l.交替色显示明细行</td>
<td><a href="javascript:openReport('1l', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('1l', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('1l', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/1l.grf" target="_blank">grf/1l.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
用两种背景色交替显示明细行的背景，通过设置内容行的“交替背景色”属性实现。
</td>
</tr>
</table>

<h3>分组报表</h3>
<table class="table-report">
<colgroup>
<col width="10%" />
<col width="25%" />
<col width="10%" />
<col width="20%" />
<col width="35%" />
</colgroup>
<tr class="table-title-row">
<th>报表名称</th>
<th>报表运行</th>
<th>报表模板</th>
<th>报表数据</th>
<th>说明</th>
</tr>

<tr class="table-data-row">
<td>2a.基本分组</td>
<td><a href="javascript:openReport('2a', 'SaleDetail');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('2a', 'SaleDetail');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('2a', 'SaleDetail');">搭配服务器</a>
</td>
<td><a href="../grf/2a.grf" target="_blank">grf/2a.grf</a></td>
<td><a href="javascript:openData('SaleDetail');">/data/DataCenter.jsp?data=SaleDetail</a></td>
<td>
一个最基本的分组报表，定义一个分组，并定义分组的“依据字段”属性。
</td>
</tr>
<tr class="table-data-row">
<td>2b.依据多个字段分组</td>
<td><a href="javascript:openReport('2b', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('2b', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('2b', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/2b.grf" target="_blank">grf/2b.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
根据多个字段进行分组的报表，多个分组字段之间用字符“;”隔开。
</td>
</tr>
<tr class="table-data-row">
<td>2c.多级分组</td>
<td><a href="javascript:openReport('2c', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('2c', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('2c', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/2c.grf" target="_blank">grf/2c.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
演示定义多个分组实现多级分组报表。
</td>
</tr>
<tr class="table-data-row">
<td>2d.分组单元格合并</td>
<td><a href="javascript:openReport('2d', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('2d', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('2d', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/2d.grf" target="_blank">grf/2d.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
演示占列式分组报表，占列式分组其分组头不占据单独的显示行，也就是表格分组单元格合并。
</td>
</tr>
<tr class="table-data-row">
<td>2e.自定义分组单元格合并</td>
<td><a href="javascript:openReport('2e', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('2e', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('2e', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/2e.grf" target="_blank">grf/2e.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
演示占列式分组，合并单元格内容在分组头中专门定义。
</td>
</tr>
<tr class="table-data-row">
<td>2f.多级分组单元格合并</td>
<td><a href="javascript:openReport('2f', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('2f', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('2f', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/2f.grf" target="_blank">grf/2f.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
演示多级分组占列式分组报表。
</td>
</tr>
<tr class="table-data-row">
<td>2h.分组节显示列线</td>
<td><a href="javascript:openReport('2h', 'SaleDetail');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('2h', 'SaleDetail');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('2h', 'SaleDetail');">搭配服务器</a>
</td>
<td><a href="../grf/2h.grf" target="_blank">grf/2h.grf</a></td>
<td><a href="javascript:openData('SaleDetail');">/data/DataCenter.jsp?data=SaleDetail</a></td>
<td>
在分组头与分组尾中显示列线，通过显示部件框的左右边框并采用对其列定位来实现。
</td>
</tr>
<tr class="table-data-row">
<td>2l.分组按统计排序</td>
<td><a href="javascript:openReport('2l', 'SaleDetail');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('2l', 'SaleDetail');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('2l', 'SaleDetail');">搭配服务器</a>
</td>
<td><a href="../grf/2l.grf" target="_blank">grf/2l.grf</a></td>
<td><a href="javascript:openData('SaleDetail');">/data/DataCenter.jsp?data=SaleDetail</a></td>
<td>
根据分组的统计值进行排序。
</td>
</tr>
</table>

<h3>交叉报表</h3>
<table class="table-report">
<colgroup>
<col width="10%" />
<col width="25%" />
<col width="10%" />
<col width="20%" />
<col width="35%" />
</colgroup>
<tr class="table-title-row">
<th>报表名称</th>
<th>报表运行</th>
<th>报表模板</th>
<th>报表数据</th>
<th>说明</th>
</tr>

<tr class="table-data-row">
<td>3a.交叉表起步</td>
<td><a href="javascript:openReport('3a', 'CrossTab');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3a', 'CrossTab');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3a', 'CrossTab');">搭配服务器</a>
</td>
<td><a href="../grf/3a.grf" target="_blank">grf/3a.grf</a></td>
<td><a href="javascript:openData('CrossTab');">/data/DataCenter.jsp?data=CrossTab</a></td>
<td>
一个最基本的交叉报表。
</td>
</tr>
<tr class="table-data-row">
<td>3b.交叉表横向合计</td>
<td><a href="javascript:openReport('3b', 'CrossTab');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3b', 'CrossTab');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3b', 'CrossTab');">搭配服务器</a>
</td>
<td><a href="../grf/3b.grf" target="_blank">grf/3b.grf</a></td>
<td><a href="javascript:openData('CrossTab');">/data/DataCenter.jsp?data=CrossTab</a></td>
<td>
交叉表加上横向求和功能。
</td>
</tr>
<tr class="table-data-row">
<td>3c.交叉表纵向合计</td>
<td><a href="javascript:openReport('3c', 'CrossTab');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3c', 'CrossTab');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3c', 'CrossTab');">搭配服务器</a>
</td>
<td><a href="../grf/3c.grf" target="_blank">grf/3c.grf</a></td>
<td><a href="javascript:openData('CrossTab');">/data/DataCenter.jsp?data=CrossTab</a></td>
<td>
交叉表加上纵向求和功能。
</td>
</tr>
<tr class="table-data-row">
<td>3d.交叉表横向百分比</td>
<td><a href="javascript:openReport('3d', 'CrossTab');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3d', 'CrossTab');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3d', 'CrossTab');">搭配服务器</a>
</td>
<td><a href="../grf/3d.grf" target="_blank">grf/3d.grf</a></td>
<td><a href="javascript:openData('CrossTab');">/data/DataCenter.jsp?data=CrossTab</a></td>
<td>
交叉表横向求比重百分比。
</td>
</tr>
<tr class="table-data-row">
<td>3e.交叉表纵向百分比</td>
<td><a href="javascript:openReport('3e', 'CrossTab');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3e', 'CrossTab');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3e', 'CrossTab');">搭配服务器</a>
</td>
<td><a href="../grf/3e.grf" target="_blank">grf/3e.grf</a></td>
<td><a href="javascript:openData('CrossTab');">/data/DataCenter.jsp?data=CrossTab</a></td>
<td>
交叉表纵向求比重百分比。
</td>
</tr>
<tr class="table-data-row">
<td>3f.交叉表按日交叉</td>
<td><a href="javascript:openReport('3f', 'CrossTabByDay');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3f', 'CrossTabByDay');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3f', 'CrossTabByDay');">搭配服务器</a>
</td>
<td><a href="../grf/3f.grf" target="_blank">grf/3f.grf</a></td>
<td><a href="javascript:openData('CrossTabByDay');">/data/DataCenter.jsp?data=CrossTabByDay</a></td>
<td>
按日交叉表，即通常所说的日报表。
</td>
</tr>
<tr class="table-data-row">
<td>3g.交叉表按月交叉</td>
<td><a href="javascript:openReport('3g', 'CrossTabByMonth');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3g', 'CrossTabByMonth');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3g', 'CrossTabByMonth');">搭配服务器</a>
</td>
<td><a href="../grf/3g.grf" target="_blank">grf/3g.grf</a></td>
<td><a href="javascript:openData('CrossTabByMonth');">/data/DataCenter.jsp?data=CrossTabByMonth</a></td>
<td>
按月交叉表，即通常所说的月报表。
</td>
</tr>
<tr class="table-data-row">
<td>3h.交叉表横向平均</td>
<td><a href="javascript:openReport('3h', 'CrossTab');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3h', 'CrossTab');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3h', 'CrossTab');">搭配服务器</a>
</td>
<td><a href="../grf/3h.grf" target="_blank">grf/3h.grf</a></td>
<td><a href="javascript:openData('CrossTab');">/data/DataCenter.jsp?data=CrossTab</a></td>
<td>
交叉表横向统计平均值。
</td>
</tr>
<tr class="table-data-row">
<td>3i.交叉表纵向单元格合并</td>
<td><a href="javascript:openReport('3i', 'CrossTab');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3i', 'CrossTab');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3i', 'CrossTab');">搭配服务器</a>
</td>
<td><a href="../grf/3i.grf" target="_blank">grf/3i.grf</a></td>
<td><a href="javascript:openData('CrossTab');">/data/DataCenter.jsp?data=CrossTab</a></td>
<td>
演示交叉表分组单元格合并功能。
</td>
</tr>
<tr class="table-data-row">
<td>3j.交叉表多数据列(1)</td>
<td><a href="javascript:openReport('3j', 'CrossTab');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3j', 'CrossTab');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3j', 'CrossTab');">搭配服务器</a>
</td>
<td><a href="../grf/3j.grf" target="_blank">grf/3j.grf</a></td>
<td><a href="javascript:openData('CrossTab');">/data/DataCenter.jsp?data=CrossTab</a></td>
<td>
演示一个具有两个交叉数据列的交叉报表。
</td>
</tr>
<tr class="table-data-row">
<td>3k.交叉表多数据列(2)</td>
<td><a href="javascript:openReport('3k', 'CrossTab');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3k', 'CrossTab');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3k', 'CrossTab');">搭配服务器</a>
</td>
<td><a href="../grf/3k.grf" target="_blank">grf/3k.grf</a></td>
<td><a href="javascript:openData('CrossTab');">/data/DataCenter.jsp?data=CrossTab</a></td>
<td>
演示一个具有两个交叉数据列的交叉报表。
</td>
</tr>
<tr class="table-data-row">
<td>3l.交叉表自定义统计</td>
<td><a href="javascript:openReport('3l');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3l');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3l');">搭配服务器</a>
</td>
<td><a href="../grf/3l.grf" target="_blank">grf/3l.grf</a></td>
<td></td>
<td>
演示一个按年月交叉的交叉报表。
</td>
</tr>
<tr class="table-data-row">
<td>3m.交叉表横向小计(1)</td>
<td><a href="javascript:openReport('3m', 'CrossTabSubtotal');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3m', 'CrossTabSubtotal');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3m', 'CrossTabSubtotal');">搭配服务器</a>
</td>
<td><a href="../grf/3m.grf" target="_blank">grf/3m.grf</a></td>
<td><a href="javascript:openData('CrossTabSubtotal');">/data/DataCenter.jsp?data=CrossTabSubtotal</a></td>
<td>
交叉表横向交叉项按类别进行分类，并据此产生按类别统计的数据。
</td>
</tr>
<tr class="table-data-row">
<td>3n.交叉表横向小计(2)</td>
<td><a href="javascript:openReport('3n', 'CrossTabSubtotal');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3n', 'CrossTabSubtotal');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3n', 'CrossTabSubtotal');">搭配服务器</a>
</td>
<td><a href="../grf/3n.grf" target="_blank">grf/3n.grf</a></td>
<td><a href="javascript:openData('CrossTabSubtotal');">/data/DataCenter.jsp?data=CrossTabSubtotal</a></td>
<td>
交叉表横向交叉项按类别进行分类，并据此产生按类别统计的数据，与上例区别在表头形式上。
</td>
</tr>
<tr class="table-data-row">
<td>3o.交叉表横向显示表格</td>
<td><a href="javascript:openReport('3o', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3o', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3o', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/3o.grf" target="_blank">grf/3o.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
用交叉表实现表格数据的横向显示。
</td>
</tr>
<tr class="table-data-row">
<td>3p.交叉表按年月交叉</td>
<td><a href="javascript:openReport('3p', 'CrossTabYearMonth');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3p', 'CrossTabYearMonth');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3p', 'CrossTabYearMonth');">搭配服务器</a>
</td>
<td><a href="../grf/3p.grf" target="_blank">grf/3p.grf</a></td>
<td><a href="javascript:openData('CrossTabYearMonth');">/data/DataCenter.jsp?data=CrossTabYearMonth</a></td>
<td>
根据年份与月份对数据进行交叉统计。
</td>
</tr>
<tr class="table-data-row">
<td>3q.日历报表</td>
<td><a href="javascript:openReport('3q', 'CrossTabCalendar');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('3q', 'CrossTabCalendar');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('3q', 'CrossTabCalendar');">搭配服务器</a>
</td>
<td><a href="../grf/3q.grf" target="_blank">grf/3q.grf</a></td>
<td><a href="javascript:openData('CrossTabCalendar');">/data/DataCenter.jsp?data=CrossTabCalendar</a></td>
<td>
类似日历一样的报表，用于展现每日的统计数据。
</td>
</tr>
</table>

<h3>子报表</h3>
<table class="table-report">
<colgroup>
<col width="10%" />
<col width="25%" />
<col width="10%" />
<col width="20%" />
<col width="35%" />
</colgroup>
<tr class="table-title-row">
<th>报表名称</th>
<th>报表运行</th>
<th>报表模板</th>
<th>报表数据</th>
<th>说明</th>
</tr>

<tr class="table-data-row">
<td>4a.演示子报表</td>
<td><a href="javascript:openReport('4a', 'SubReport_4a');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('4a', 'SubReport_4a');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('4a', 'SubReport_4a');">搭配服务器</a>
</td>
<td><a href="../grf/4a.grf" target="_blank">grf/4a.grf</a></td>
<td><a href="javascript:openData('SubReport_4a');">/data/DataCenter.jsp?data=SubReport_4a</a></td>
<td>
示子报表，在一个主控报表中显示多个子报表，实现多个报表的集中展现。
</td>
</tr>
<tr class="table-data-row">
<td>4b.独立子报表</td>
<td><a href="javascript:openReport('4b', 'SubReport_4b');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('4b', 'SubReport_4b');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('4b', 'SubReport_4b');">搭配服务器</a>
</td>
<td><a href="../grf/4b.grf" target="_blank">grf/4b.grf</a></td>
<td><a href="javascript:openData('SubReport_4b');">/data/DataCenter.jsp?data=SubReport_4b</a></td>
<td>
独立子报表中每个子报表可以是不同的页面设置，可以导出到不同的Excel工作表。独立子报表的概念说明: 请参考帮助中的“开发指南->报表部件框应用->子报表”部分。
</td>
</tr>
<tr class="table-data-row">
<td>4c.子报表实现表中表</td>
<td><a href="javascript:openReport('4c', 'SubReport_4c');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('4c', 'SubReport_4c');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('4c', 'SubReport_4c');">搭配服务器</a>
</td>
<td><a href="../grf/4c.grf" target="_blank">grf/4c.grf</a></td>
<td><a href="javascript:openData('SubReport_4c');">/data/DataCenter.jsp?data=SubReport_4c</a></td>
<td>
演示在内容格中查入子报表实现表中表。<a href="General/DesignReport.jsp?report=1m1.grf" target="_blank">[设计子报表1]</a><a href="General/DesignReport.jsp?report=1m2.grf" target="_blank">[设计子报表2]</a>
</td>
</tr>
<tr class="table-data-row">
<td>4d.子报表主子关联</td>
<td><a href="javascript:openReport('4d', 'SubReport_4d' + '&city=' + encodeURIComponent('天津'));">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('4d', 'SubReport_4d' + '&city=' + encodeURIComponent('天津'));">搭配客户端</a><span></span>
<a href="javascript:openReportServer('4d', 'SubReport_4d' + '&city=' + encodeURIComponent('天津'));">搭配服务器</a>
</td>
<td><a href="../grf/4d.grf" target="_blank">grf/4d.grf</a></td>
<td><a href="javascript:openData('SubReport_4d' + '&city=' + encodeURIComponent('天津'));">/data/DataCenter.jsp?data=SubReport_4d&city=天津</a></td>
<td>
演示主子报表之间如何自动传递参数，子报表中的参数会自动从主报表中同名的参数或记录集字段中取值。
</td>
</tr>
</table>

<h3>各种常见类型报表</h3>
<table class="table-report">
<colgroup>
<col width="10%" />
<col width="25%" />
<col width="10%" />
<col width="20%" />
<col width="35%" />
</colgroup>
<tr class="table-title-row">
<th>报表名称</th>
<th>报表运行</th>
<th>报表模板</th>
<th>报表数据</th>
<th>说明</th>
</tr>

<tr class="table-data-row">
<td>5a.表达式运算</td>
<td><a href="javascript:openReport('5a', 'SaleDetail');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('5a', 'SaleDetail');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('5a', 'SaleDetail');">搭配服务器</a>
</td>
<td><a href="../grf/5a.grf" target="_blank">grf/5a.grf</a></td>
<td><a href="javascript:openData('SaleDetail');">/data/DataCenter.jsp?data=SaleDetail</a></td>
<td>
演示用综合文字框实现运算表达式。
</td>
</tr>
<tr class="table-data-row">
<td>5b.显示行号序号</td>
<td><a href="javascript:openReport('5b', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('5b', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('5b', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/5b.grf" target="_blank">grf/5b.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
演示用系统变量显示行号及各种序号，将内容格设为自由格并插入系统变量框。
</td>
</tr>
<tr class="table-data-row">
<td>5c.层高不等多层表头</td>
<td><a href="javascript:openReport('5c', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('5c', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('5c', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/5c.grf" target="_blank">grf/5c.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
演示层高不等多层表头报表。
</td>
</tr>
<tr class="table-data-row">
<td>5f.无边框表格</td>
<td><a href="javascript:openReport('5f', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('5f', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('5f', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/5f.grf" target="_blank">grf/5f.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
演示一个没有表格边框线的报表。
</td>
</tr>
<tr class="table-data-row">
<td>5g.无行线表格</td>
<td><a href="javascript:openReport('5g', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('5g', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('5g', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/5g.grf" target="_blank">grf/5g.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
演示一个没有行线的表格报表，但标题行下显示一条水平分隔线，标题格为自由格，其中的静态框显示下边框。
</td>
</tr>
</table>

<h3>报表脚本</h3>
<table class="table-report">
<colgroup>
<col width="10%" />
<col width="25%" />
<col width="10%" />
<col width="20%" />
<col width="35%" />
</colgroup>
<tr class="table-title-row">
<th>报表名称</th>
<th>报表运行</th>
<th>报表模板</th>
<th>报表数据</th>
<th>说明</th>
</tr>

<tr class="table-data-row">
<td>7-1a.脚本：追加空白记录</td>
<td><a href="javascript:openReport('7-1a');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('7-1a');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('7-1a');">搭配服务器</a>
</td>
<td><a href="../grf/7-1a.grf" target="_blank">grf/7-1a.grf</a></td>
<td></td>
<td>
在报表主对象的开始处理脚本上实现追加空白记录。
</td>
</tr>
<tr class="table-data-row">
<td>7-1b.脚本：设置特殊显示文字</td>
<td><a href="javascript:openReport('7-1b');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('7-1b');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('7-1b');">搭配服务器</a>
</td>
<td><a href="../grf/7-1b.grf" target="_blank">grf/7-1b.grf</a></td>
<td></td>
<td>
在字段的“获取显示文字脚本”中为字段设置特殊显示文字。在文字类部件框上也可以实现类似的功能。
</td>
</tr>
<tr class="table-data-row">
<td>7-1c.脚本：文字按条件突出显示</td>
<td><a href="javascript:openReport('7-1c', 'SaleDetail');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('7-1c', 'SaleDetail');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('7-1c', 'SaleDetail');">搭配服务器</a>
</td>
<td><a href="../grf/7-1c.grf" target="_blank">grf/7-1c.grf</a></td>
<td><a href="javascript:openData('SaleDetail');">/data/DataCenter.jsp?data=SaleDetail</a></td>
<td>
在内容行的“格式化脚本”中实现文字按条件高亮显示。部件框的外观属性可以在其所处的报表节的格式化脚本上进行改变，这样可以根据不同的条件实现文字按不同的格式显示。
</td>
</tr>
<tr class="table-data-row">
<td>7-1d.脚本：整行突出显示</td>
<td><a href="javascript:openReport('7-1d', 'SaleSumByProduct');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('7-1d', 'SaleSumByProduct');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('7-1d', 'SaleSumByProduct');">搭配服务器</a>
</td>
<td><a href="../grf/7-1d.grf" target="_blank">grf/7-1d.grf</a></td>
<td><a href="javascript:openData('SaleSumByProduct');">/data/DataCenter.jsp?data=SaleSumByProduct</a></td>
<td>
在内容行的“格式化脚本”中实现当前行整行按条件高亮显示。
</td>
</tr>
<tr class="table-data-row">
<td>7-1e.脚本：两行显示一次行线</td>
<td><a href="javascript:openReport('7-1e', 'Customer');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('7-1e', 'Customer');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('7-1e', 'Customer');">搭配服务器</a>
</td>
<td><a href="../grf/7-1e.grf" target="_blank">grf/7-1e.grf</a></td>
<td><a href="javascript:openData('Customer');">/data/DataCenter.jsp?data=Customer</a></td>
<td>
实现按需显示表格的行线，将单元格改为自由格，然后在内容行的“格式化脚本”上按条件动态控制部件框的边框。
</td>
</tr>
<tr class="table-data-row">
<td>7-1h.脚本.按条件隐藏数据行</td>
<td><a href="javascript:openReport('7-1h', 'SaleDetail');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('7-1h', 'SaleDetail');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('7-1h', 'SaleDetail');">搭配服务器</a>
</td>
<td><a href="../grf/7-1h.grf" target="_blank">grf/7-1h.grf</a></td>
<td><a href="javascript:openData('SaleDetail');">/data/DataCenter.jsp?data=SaleDetail</a></td>
<td>
根据条件确定明细行是否显示。
</td>
</tr>
<tr class="table-data-row">
<td>7-2a.脚本：计算字段</td>
<td><a href="javascript:openReport('7-2a');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('7-2a');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('7-2a');">搭配服务器</a>
</td>
<td><a href="../grf/7-2a.grf" target="_blank">grf/7-2a.grf</a></td>
<td></td>
<td>
报表中可以插入计算字段，计算字段无实际数据源字段对应。在记录集的“提交记录前脚本”属性上写报表脚本，实现计算字段求值。
</td>
</tr>
<tr class="table-data-row">
<td>7-2b.脚本：累计求和(收发存)</td>
<td><a href="javascript:openReport('7-2b', 'SaleByProduct');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('7-2b', 'SaleByProduct');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('7-2b', 'SaleByProduct');">搭配服务器</a>
</td>
<td><a href="../grf/7-2b.grf" target="_blank">grf/7-2b.grf</a></td>
<td><a href="javascript:openData('SaleByProduct');">/data/DataCenter.jsp?data=SaleByProduct</a></td>
<td>
用报表脚本实现计算收入支出数据的结存余额。
</td>
</tr>
<tr class="table-data-row">
<td>7-2c.脚本：占列分组不重复求和</td>
<td><a href="javascript:openReport('7-2c');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('7-2c');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('7-2c');">搭配服务器</a>
</td>
<td><a href="../grf/7-2c.grf" target="_blank">grf/7-2c.grf</a></td>
<td></td>
<td>
用报表脚本实现主表数据项求和，每项只求和一次。
</td>
</tr>
<tr class="table-data-row">
<td>7-3e.脚本：自定义条件分组</td>
<td><a href="javascript:openReport('7-3e');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('7-3e');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('7-3e');">搭配服务器</a>
</td>
<td><a href="../grf/7-3e.grf" target="_blank">grf/7-3e.grf</a></td>
<td></td>
<td>
分组不是根据某一个或多个字段的值的变化产生，而是根据自定义的规则产生分组项，这里是根据值的范围产生不同的分组。
</td>
</tr>
<tr class="table-data-row">
<td>7-3f.脚本：按首字母分组</td>
<td><a href="javascript:openReport('7-3f');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('7-3f');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('7-3f');">搭配服务器</a>
</td>
<td><a href="../grf/7-3f.grf" target="_blank">grf/7-3f.grf</a></td>
<td></td>
<td>
按首字母进行分组。增加一个计算字段，在记录集的“提交记录前脚本”中将计算字段的值设为对应字段的首字母。
</td>
</tr>
</table>

<h3>图表(Chart)</h3>
<table class="table-report">
<colgroup>
<col width="10%" />
<col width="25%" />
<col width="10%" />
<col width="20%" />
<col width="35%" />
</colgroup>
<tr class="table-title-row">
<th>报表名称</th>
<th>报表运行</th>
<th>报表模板</th>
<th>报表数据</th>
<th>说明</th>
</tr>

<tr class="table-data-row">
<td>8a.图表.序列组簇图</td>
<td><a href="javascript:openReport('8a');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('8a');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('8a');">搭配服务器</a>
</td>
<td><a href="../grf/8a.grf" target="_blank">grf/8a.grf</a></td>
<td></td>
<td>
各种序列组簇类型的图表，包括柱状图、饼图、连线图、混和图表、双轴图表等。
</td>
</tr>
<tr class="table-data-row">
<td>8b.图表.XY数据型图</td>
<td><a href="javascript:openReport('8b', 'Chart_8b');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('8b', 'Chart_8b');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('8b', 'Chart_8b');">搭配服务器</a>
</td>
<td><a href="../grf/8b.grf" target="_blank">grf/8b.grf</a></td>
<td><a href="javascript:openData('Chart_8b');">/data/DataCenter.jsp?data=Chart_8b</a></td>
<td>
各种散列(XY)类型的图表，包括散列点图、散列连线图、散列曲线图、气泡图表等。
</td>
</tr>
<tr class="table-data-row">
<td>8c.图表.三维(3D)</td>
<td><a href="javascript:openReport('8c');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('8c');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('8c');">搭配服务器</a>
</td>
<td><a href="../grf/8c.grf" target="_blank">grf/8c.grf</a></td>
<td></td>
<td>
各种3D图表等。
</td>
</tr>
<tr class="table-data-row">
<td>8d.记录集图表</td>
<td><a href="javascript:openReport('8c', 'Chart_8d');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('8c', 'Chart_8d');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('8c', 'Chart_8d');">搭配服务器</a>
</td>
<td><a href="../grf/8c.grf" target="_blank">grf/8c.grf</a></td>
<td><a href="javascript:openData('Chart_8d');">/data/DataCenter.jsp?data=Chart_8d</a></td>
<td>
图表全部定义对应记录集，图表的相关属性关联记录集的字段。
</td>
</tr>
</table>

<h3>自由表格(FreeGrid)</h3>
<table class="table-report">
<colgroup>
<col width="10%" />
<col width="25%" />
<col width="10%" />
<col width="20%" />
<col width="35%" />
</colgroup>
<tr class="table-title-row">
<th>报表名称</th>
<th>报表运行</th>
<th>报表模板</th>
<th>报表数据</th>
<th>说明</th>
</tr>

<tr class="table-data-row">
<td>9a.自由表格</td>
<td><a href="javascript:openReport('9a', 'EmployeeOne');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('9a', 'EmployeeOne');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('9a', 'EmployeeOne');">搭配服务器</a>
</td>
<td><a href="../grf/9a.grf" target="_blank">grf/9a.grf</a></td>
<td><a href="javascript:openData('EmployeeOne');">/data/DataCenter.jsp?data=EmployeeOne</a></td>
<td>
用自由表格(FreeGrid)部件框制作一个人员档案自由表格。
</td>
</tr>
<tr class="table-data-row">
<td>9b.自由表格并明细网格</td>
<td><a href="javascript:openReport('9b', 'FreeGridwithDetailGrid');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('9b', 'FreeGridwithDetailGrid');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('9b', 'FreeGridwithDetailGrid');">搭配服务器</a>
</td>
<td><a href="../grf/9b.grf" target="_blank">grf/9b.grf</a></td>
<td><a href="javascript:openData('FreeGridwithDetailGrid');">/data/DataCenter.jsp?data=FreeGridwithDetailGrid</a></td>
<td>
用自由表格部件框与明细网格共同实现一个有动态明细数据的自由表格。
</td>
</tr>
</table>

<h3>报表组件对象模型</h3>
<table class="table-report">
<colgroup>
<col width="10%" />
<col width="25%" />
<col width="10%" />
<col width="20%" />
<col width="35%" />
</colgroup>
<tr class="table-title-row">
<th>报表名称</th>
<th>报表运行</th>
<th>报表模板</th>
<th>报表数据</th>
<th>说明</th>
</tr>

<tr class="table-data-row">
<td>a0.报表组件对象模型</td>
<td><a href="javascript:openReport('a0');">仅HTML5报表</a><span></span>
<a href="javascript:openReportWebApp('a0');">搭配客户端</a><span></span>
<a href="javascript:openReportServer('a0');">搭配服务器</a>
</td>
<td><a href="../grf/a0.grf" target="_blank">grf/a0.grf</a></td>
<td></td>
<td>
用 Grid++Report 本身设计出其编程对象的组件对象模型图。
</td>
</tr>
</table>
<h2>教程例子演示</h2>


<h3>基础起步</h3>
<table class="table-report">
<colgroup>
<col width=20% />
<col width=50% />
<col width=30% />
</colgroup>
<tr class="table-title-row">
<th>例子报表名称</th>
<th>简要说明</th>
<th>例子文件</th>
</tr>
<tr class="table-data-row">
<td><a href="01.Simple/ViewReport.htm" target="_blank">起步例子</a></td>
<td>包含HTML5报表的js程序文件，设定报表显示占位HTML标签，定义报表显示对象并关联相关参数，显示一个HTML5报表只需短短几行代码。</td>
<td>01.Simple/ViewReport.htm</td>
</tr>
<tr class="table-data-row">
<td><a href="10.SummaryToDetail/Summary.htm" target="_blank">按条件筛选报表数据</a></td>
<td>通过在报表数据URL中增加参数实现筛选条件传递给WEB服务器，按条件获取报表数据。</td>
<td>10.SummaryToDetail/Summary.htm</td>
</tr>
<tr class="table-data-row">
<td><a href="05.Picture/Picture.htm" target="_blank">报表中显示图像</a></td>
<td>各种类型图像数据显示在报表中。</td>
<td>05.Picture/Picture.htm</td>
</tr>
<tr class="table-data-row">
<td><a href="10.SummaryToDetail/Summary.htm" target="_blank">汇总报表穿透(透视/Drilldown)查询</a></td>
<td>从汇总报表穿透查询到对应的明细报表，将当前双击行的记录数据作为穿透参数。</td>
<td>10.SummaryToDetail/Summary.htm</td>
</tr>
<tr class="table-data-row">
<td><a href="10.SummaryToDetail/Crosstab.htm" target="_blank">交叉报表穿透(透视/Drilldown)查询</a></td>
<td>从交叉报表穿透查询到对应的明细报表，将当前双击行或单元格的记录关联数据作为穿透参数。</td>
<td>10.SummaryToDetail/Crosstab.htm</td>
</tr>
<tr class="table-data-row">
<td><a href="PlusWebApp/webapp-toolbar-bootstrap.htm" target="_blank">搭配WEB报表客户端</a></td>
<td>利用WEB报表客户端实现报表打印、打印预览与数据导出。</td>
<td>PlusWebApp/webapp-toolbar-bootstrap.htm</td>
</tr>
<tr class="table-data-row">
<td><a href="PlusServer/server-toolbar-bootstrap.htm" target="_blank">搭配WEB报表服务器</a></td>
<td>利用WEB报表服务器的功能实现报表数据导出。</td>
<td>PlusServer/server-toolbar-bootstrap.htm</td>
</tr>
<tr class="table-data-row">
<td><a href="Advance/CrossDomain/CrossDomainReport.htm" target="_blank">解决报表数据跨域</a></td>
<td>通过 General/CrossDomain.jsp 读取报表数据解决跨域问题。也可以通过 jsonp 方式解决，参考例子JsonpRport.htm。</td>
<td>Advance/CrossDomain/CrossDomainReport.htm</td>
</tr>
</table>
<section>
<h3>进一步了解锐浪报表</h3>
    <a href="http://www.rubylong.cn" target="_blank">锐浪软件网站</a> | 
    <a href="http://www.rubylong.cn/gridreport/product-overview.htm" target="_blank">锐浪报表Grid++Report介绍</a> |
    <a href="http://www.rubylong.cn/gridreport/sel-decision.htm" target="_blank">锐浪报表开发选型</a> |
    <a href="http://www.rubylong.cn/gridreport/sel-web.htm" target="_blank">锐浪WEB报表开发方式</a> |
    <a href="http://www.gridreport.cn/demos/plugins/" target="_blank">WEB报表插件演示</a> |
    <a href="http://www.gridreport.cn/demos/html5/" target="_blank">HTML5报表演示</a> |
    <a href="http://www.gridreport.cn/demos/server/" target="_blank">WEB报表服务器演示</a> |
    <a href="http://www.rubylong.cn/gridreport/product-trial-free.htm" target="_blank">关于锐浪报表免费版</a>
</section>
</body>
</html>
